#ifndef ALIASMANAGER_HH_
# define ALIASMANAGER_HH_

/** exclusively Client side methods execution
 ** aliases are only stored on Client PC
 ** donators cd store their own file on web server
 */
class AliasManager
{
public:
  /// _aliasesFilePath setter
  bool Command::setAliasesFilePath();

  /** alias commands follows UNIX alias command behaviour
   ** without arguments, it returns alias list in a std::Vector
   */
  std::Vector<>* Command::alias(); // check this pointer on std::Vector


  /** alias commands follows UNIX alias command behaviour
   ** with listing syntax, returns alias of given string
   ** meaning: on what does \param string points
   ** \return true if correctly set
   ** \return false if it was unable to set an alias
   **   could be caused by: bad OS write permission
   **
   ** alias cmd syntax:
   **   aliasName='aliasContent'
   */
  bool Command::alias(std::string);

  void Command::unalias();


private:
  /** ask system to store given alias on DEFAULT_PATH_ALIASES
   ** \param aliasName: alias
   ** \param aliasContent: on what alias is pointing on
   */
  bool Command::setAlias(std::string aliasName, std::string aliasContent);

  bool Command::readAliases();

  std::string _aliasesFilePath;
};

#endif /* !ALIASMANAGER_HH_ */
